<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>动态继承</title>
</head>
<body>
<script>
    let person1 = {
        name: 'person1'
    }

    let person2 = {
        name: 'person2'
    }

    let person ={
        __proto__: person1
    }
    console.log(person.name)


    /*
    *
    * 动态语言可以实现动态继承
    * */
    Object.setPrototypeOf(person,person2)
    console.log(person.name)

    /*
    * setPrototype是设置对象的原型，是创建对象之后，再在其基础之上设置原型，不像构造函数设置prototype一样先定义好
    * 构造函数的原型属性载创建对象就可以自动拥有原型上的数据
    *
    * 类似的有Object.create()方法将某个对象设置为新对象的原型属性,这些操作都可以直接绕开通过构造函数设置原型而直接使用对象来设置原型
    *
    * */


</script>
</body>
</html>